A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Certain devices, referred to as routers, maintain routing information that describes routes through the network. A “route” can generally be defined as a path between two locations on the network. Routers include a control plane, sometimes called a management plane, which maintains the routing information, and a forwarding plane, which forwards received packets according to the routing information.
Network service providers provide services such as security, tunneling, virtual private networks, filtering, load-balancing, VoIP/Multimedia processing and various types of application proxies (HTTP, XML, WAP, etc) to incoming packets. Service providers also provide content-specific services designed to improve the quality of a user's experience, for example, video streaming and caching. To provide these new services, service providers have often turned to specialized, dedicated appliances. In some cases, routers have been modified to include additional hardware or software that applies various services to the incoming packets. For example, line cards installed in a service plane of a router may be configured to perform particular services, such as the services described above.
Deploying dedicated appliances or custom hardware blades within existing routing infrastructure can be expensive and time consuming, thereby preventing service providers from quickly deploying hardware that supports new services. Deploying dedicated appliances increases operational costs because existing techniques often require many different custom devices interconnected and configured in a static manner, and provide little to no integration with the routers or other network elements.